Don't flush if we're inside a begin_paint/end_paint pair.
authorAnders Carlsson <andersca@imendio.com>
Wed, 12 Apr 2006 08:23:01 +0000 (08:23 +0000)
committerAnders Carlsson <andersca@src.gnome.org>
Wed, 12 Apr 2006 08:23:01 +0000 (08:23 +0000)
2006-04-12  Anders Carlsson  <andersca@imendio.com>

        * gdk/quartz/gdkdrawable-quartz.c:
        (_gdk_quartz_drawable_release_context):
        Don't flush if we're inside a begin_paint/end_paint pair.

        * gdk/quartz/gdkwindow-quartz.c:
        (gdk_window_impl_quartz_end_paint):
        Free clip region here.

ChangeLog
ChangeLog.pre-2-10
gdk/quartz/gdkdrawable-quartz.c
gdk/quartz/gdkwindow-quartz.c

index 17c2b79aa9dd794b7e846c2a29007057323f5934..df0905cc2e47ff14f44369c5c0b1079ede6fdbb1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2006-04-12  Anders Carlsson  <andersca@imendio.com>
+
+        * gdk/quartz/gdkdrawable-quartz.c:
+        (_gdk_quartz_drawable_release_context):
+        Don't flush if we're inside a begin_paint/end_paint pair.
+        
+        * gdk/quartz/gdkwindow-quartz.c:
+        (gdk_window_impl_quartz_end_paint):
+        Free clip region here.
+
 2006-04-12  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkuimanager.c (start_element_handler): Don't pass
index 17c2b79aa9dd794b7e846c2a29007057323f5934..df0905cc2e47ff14f44369c5c0b1079ede6fdbb1 100644 (file)
@@ -1,3 +1,13 @@
+2006-04-12  Anders Carlsson  <andersca@imendio.com>
+
+        * gdk/quartz/gdkdrawable-quartz.c:
+        (_gdk_quartz_drawable_release_context):
+        Don't flush if we're inside a begin_paint/end_paint pair.
+        
+        * gdk/quartz/gdkwindow-quartz.c:
+        (gdk_window_impl_quartz_end_paint):
+        Free clip region here.
+
 2006-04-12  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkuimanager.c (start_element_handler): Don't pass
index 6e5cdd852537566b0962a6636ad3d7f48cf9d25c..617daf962e4f31af150bcf390fadc76101a93114 100644 (file)
@@ -654,7 +654,8 @@ _gdk_quartz_drawable_release_context (GdkDrawable *drawable, CGContextRef contex
       CGContextRestoreGState (context);
       CGContextSetAllowsAntialiasing (context, TRUE);
 
-      if (impl->in_paint_rect_count == 0)
+      if (impl->in_paint_rect_count == 0 &&
+         impl->begin_paint_count == 0)
        CGContextFlush (context);
 
       [impl->view unlockFocus];
index 92c915c9d37170561cb93bd5bedac32ee50b8221..e94ebfe7d8676e53de9ec7dd6d3a70de4c8549f5 100644 (file)
@@ -172,6 +172,12 @@ gdk_window_impl_quartz_end_paint (GdkPaintable *paintable)
   GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (paintable);
 
   impl->begin_paint_count --;
+
+  if (impl->begin_paint_count == 0)
+    {
+      gdk_region_destroy (impl->paint_clip_region);
+      impl->paint_clip_region = NULL;
+    }
 }
 
 static void